ডেটা সিডিং হলো একটি প্রক্রিয়া যেখানে প্রাথমিক ডেটা ডেটাবেসে স্বয়ংক্রিয়ভাবে ইনসার্ট করা হয়। সাধারণত এটি ডেভেলপমেন্ট বা টেস্টিং পরিবেশে ব্যবহৃত হয়, যেখানে ডেটাবেসে কিছু প্রাথমিক বা নমুনা (sample) ডেটা থাকতে হয়। ASP.NET Core-এ Entity Framework Core ব্যবহার করে ডেটা সিডিং খুবই সহজ। ডেটা সিডিংয়ের মাধ্যমে আপনি ডেটাবেসের টেবিলগুলোতে প্রাথমিক ডেটা প্রদান করতে পারেন।
ASP.NET Core-এ ডেটা সিডিং করার জন্য DbContext ক্লাসের মাধ্যমে ডেটাবেসে ডেটা ইনসার্ট করা হয়। সাধারণত, ডেটা সিডিং Seed পদ্ধতি দিয়ে করা হয়, যা ডেটাবেস মাইগ্রেশন চলাকালীন বা অ্যাপ্লিকেশন চালু হলে কল করা হয়।
প্রথমে, DbContext ক্লাসে OnModelCreating
মেথডে প্রাথমিক ডেটা সিড করা হয়। এক্ষেত্রে আপনি HasData মেথড ব্যবহার করতে পারেন।
public class ApplicationDbContext : DbContext
{
public DbSet<Product> Products { get; set; }
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{ }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
// Product টেবিলের জন্য প্রাথমিক ডেটা সিড করা
modelBuilder.Entity<Product>().HasData(
new Product { Id = 1, Name = "Laptop", Price = 1000 },
new Product { Id = 2, Name = "Phone", Price = 500 }
);
}
}
এখানে, Products
টেবিলের জন্য দুটি প্রাথমিক ডেটা সিড করা হয়েছে, যা ডেটাবেসে Product ক্লাসের ইনস্ট্যান্স হিসেবে ইনসার্ট হবে।
একবার ডেটা সিডিং প্রস্তুত হয়ে গেলে, আপনাকে মাইগ্রেশন তৈরি করতে হবে এবং ডেটাবেস আপডেট করতে হবে:
dotnet ef migrations add SeedDataMigration
dotnet ef database update
এখানে, SeedDataMigration
হলো মাইগ্রেশনের নাম, যা নতুন ডেটাবেস স্কিমা এবং প্রাথমিক ডেটা ইনসার্ট করবে।
আপনি যদি আরও কাস্টম লজিক ব্যবহার করতে চান, যেমন শুধুমাত্র যখন ডেটাবেস খালি থাকে তখনই ডেটা সিড করা, তবে আপনি একটি Seed
মেথড তৈরি করতে পারেন এবং এটি Startup.cs-এ কল করতে পারেন।
public static class SeedData
{
public static void Initialize(IServiceProvider serviceProvider, ApplicationDbContext context)
{
// ডেটাবেস যদি খালি থাকে তবে সিড ডেটা যোগ করা
if (!context.Products.Any())
{
context.Products.AddRange(
new Product { Name = "Tablet", Price = 300 },
new Product { Name = "Smartwatch", Price = 150 }
);
context.SaveChanges();
}
}
}
এখানে, যদি Products
টেবিলটি খালি থাকে, তবে নতুন প্রোডাক্ট ডেটা ইনসার্ট করা হবে। এই Initialize
মেথডটি Configure মেথডে কল করতে হবে।
Startup.cs-এ Configure মেথডে এই SeedData.Initialize
মেথডটি কল করতে হবে।
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// ডেটা সিডিং করার জন্য
SeedData.Initialize(app.ApplicationServices, new ApplicationDbContext());
// অন্যান্য কনফিগারেশন
}
এটি নিশ্চিত করে যে, অ্যাপ্লিকেশন শুরু হওয়ার সময় ডেটাবেসে প্রাথমিক ডেটা সিড করা হবে।
ডেটা সিডিং হচ্ছে ডেটাবেসে প্রাথমিক বা নমুনা ডেটা ইনসার্ট করার একটি প্রক্রিয়া যা ডেভেলপমেন্ট বা টেস্টিং পরিবেশে অত্যন্ত গুরুত্বপূর্ণ। Entity Framework Core এর মাধ্যমে সহজেই OnModelCreating অথবা কাস্টম সিড মেথড ব্যবহার করে ডেটা সিড করা যায়। এই প্রক্রিয়া ডেটাবেস মাইগ্রেশন এবং আপডেটের সাথে সম্পর্কিত, এবং এটি অ্যাপ্লিকেশনের প্রথমবার চালু হওয়ার সময় প্রাথমিক ডেটা ইনসার্ট করতে সহায়তা করে।
common.read_more